微前端的優劣分析
既然產生這種架構必然會產生一些好處,也相對帶來一些壞處。雖然推廣了微前端,但也不是什麼問題都要用微前端解決。俗話說,「不要拿了錘子,看到什麼都是釘子」,還是要依照團隊需要和專案規劃來設計架構,依照必須必須性去導入。
優點
首先是好處:
- 所有架構各自為政,也可以輕易插拔這些服務元件,首先是解耦。就算特定應用有破壞性損壞,也可以大幅降低對整個應用產生的影響,最壞的情況就是一個微應用為單位崩潰,而不會導致整個應用架構崩潰。
- 再來就是應付大型團隊可以很好的去拆分職責,每個拆出去的 Repository 都可以獨立運行,選用自己想要的技術,並且各自為政不影響運行。
- 因為是單一功能部署,所以 CI/CD 的運行更快完成。
- 因為每一個功能都是基於被拆分的專案去開發,所以沒有超大型專案的維護壓力,只有各自小專案的規模。這樣開發節奏更快速,也可以承受更多工程師同時進行功能開發。
缺點
當然,有好處就有壞處:
- 載入的 Application 因為都拆分好幾塊,總體載入程式碼量比較大,通常會消耗更多流量成本。
- 功能操作限制多,不能操作 Browser Single State,否則狀態會同步異常,所以需要比較完善的團隊規範。
- 使用的函式庫或框架限制多,不能任意選用套件。
- 跨微前端溝通方式複雜且麻煩,也不同於以往使用框架使用直覺的溝通方式。
總結
選用一個技術勢必會帶來好處與副作用,挑選合適時宜的解決方案解決當前的問題。微前端終究只是一套管理方案,如果在小團隊下根本難以看到好處,隨著團隊規模增加,才能逐漸看到他的好處呈現出來。但實質微前端並沒有解決商業問題,它其實是創造另一種管理思維。